Customizing user interfaces based on user activities

ABSTRACT

A user interface including one or more references to content is customized. Several user profiles are provided from which a user may be associated. Each user profile includes user profile information. The user profile associated with a user to whom a user interface will be provided is accessed. A user interface is configured for the user, based at least in part upon the user profile accessed as being associated with the user. Access to content is enabled based on user manipulation of the configured user interface.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/059,157, filed Mar. 31, 2008, which is a continuation of U.S.application Ser. No. 10/134,675, filed Apr. 30, 2002, which is acontinuation-in-part of U.S. application Ser. No. 09/224,211, filed Dec.30, 1998, the entire contents of each of the foregoing are herebyincorporated by reference in their entirety.

TECHNICAL FIELD

The following description relates to customized user interfaces, forexample, graphical user interfaces (GUIs).

BACKGROUND

A GUI can include a wide variety of user interface controls that respondto user manipulation. For example, referring to FIG. 1, a MicrosoftWord™ word processing application GUI 100 includes a toolbar 102 thatpresents a row of user input controls 102 a-102 j positioned in asubstantially regular pattern. The controls enable a user to quicklyperform common tasks such as opening 102 b, saving 102 c, and printing102 d a document 106. By collecting controls into an easily accessiblearea of the GUI 100, the toolbar 102 enables a user to quickly find andaccess a particular control whenever the user wants the application toperform a task associated with the selected control.

The toolbar 102 can include button controls (buttons) 102 a-102 g thatfeature pictorial representations of common tasks. When activated by auser (e.g., clicked on), a button 102 a-102 g responds by causing apredetermined application function to occur. For example, button 102 cincludes a picture of a diskette. When a user clicks on the picture of adiskette 102 c or anywhere within a bounding region that defines thebutton 102 c, the word processor saves a document 106.

The toolbar 102 can include controls other than buttons 102 a-102 g. Forexample, as shown, the toolbar 102 includes a list control 102 h and apull-down menu control 102 i. Referring also to FIG. 2, when activatedby a user, the pull-down menu control 102 i presents a list 104 of menuchoices 104 a-104 c.

A control can be enabled so as to be responsive to user input ordisabled so as to be unresponsive to user input. A control can bedisplayed differently if disabled. For example, because the user has notselected any document text 106, the button 102 f corresponding to a“cut” function is displayed in a muted gray-scale, indicating that the“cut” function is presently unavailable. As shown, although displayeddifferently, a disabled control (e.g., 102 f) nevertheless occupies itsnormal amount of space on the GUI screen 100.

The toolbar 102 can remain visible while a user performs other actionssuch as working on the document 106. Additionally, a user can move thetoolbar 102 to different regions of a screen 100. Microsoft Word™ alsoallows a user to tailor the controls included in a toolbar 102 based onpersonal preference. For example, a user who does not have a printer canremove the print button 102 f from the toolbar 102.

SUMMARY

In one general aspect, customizing a user interface includes providingseveral user profiles from which a user may be associated. Each userprofile includes user profile information. The user profile associatedwith a user to whom a user interface will be provided is accessed, and auser interface is configured for the user based at least in part uponthe user profile accessed as being associated with the user. The userinterface includes one or more references to content. Access to contentis enabled based on user manipulation to the configure user interface.

Implementations may include one or more of the following features. Theuser profile information may include age or a level of maturity. Thelevel of maturity may include a child maturity level, a young teenmaturity level, a mature teen maturity level, and an adult maturitylevel. The level of maturity may be selected based upon configurationdata associated with an identifier of the user. The user profileinformation may be supplied by a master user. In one implementation, theuser is also the master user. The user profile may be stored and/orupdated. The user interface may also be updated in response to updatingof the user profile.

The user interface may be configured by a host system, and access tocontent may be enabled by a host system.

In one implementation, the user interface may be configured bypopulating the user interface with pre-designated references to contentbased upon the user profile. Access to content may be enabled byblocking access to other than the pre-designated references. Enablingaccess to content may include customizing a set of user interfacecontrols displayed to the user. Enabling access to content may alsoinclude customizing a pointer associated with a user interface control.In one implementation, the appearance of the user interface control isnot changed. A user interface control of a first user may be convertedinto a user interface control of a second user, where the first user isassociated with a first user profile and the second user is associatedwith a second user profile.

The user interface may be automatically configured, and may beconfigured in response to a user action. In one implementation, the userinterface may be configured in anticipation of user navigation to theuser interface. In another implementation, the user interface may beconfigured in response to user navigation to the user interface.

In another general aspect, several attribute types are provided fromwhich a user may be associated. An attribute type associated with a userto whom a user interface will be provided is accessed. A first userinterface is rendered, where the first user interface is available fordisplay to a first user having a first attribute type accessed as beingassociated with the first user. A second user interface is rendered,where the second user interface is available for display to a seconduser having a second attribute type accessed as being associated withthe second user.

Implementations may include one or more of the following features. Theattribute type may be indicative of an age or maturity level. Forexample, the first attribute type may be indicative of an adult maturitylevel and the second attribute type may be indicative of a childmaturity level. The child maturity level may include a mature teen, ateen, and a pre-teen.

In another general aspect, several user characteristics from which auser may be associated are provided. A user characteristic associatedwith a user to whom a user interface will be provided is accessed. Auser interface is provided based at least in part upon the usercharacteristic accessed as being associated with the user, where theuser interface includes at least one control. Access to information orservices is provided based on the user characteristic.

Implementations may include one or more of the following features. Theuser characteristic may include age or a level of maturity.

In another general aspect, regulating user interface controls includesidentifying a grouping from among multiple groupings and providing a setof user interface controls corresponding to the identified grouping.

Implementations may include one or more of the following features. Theset of user interface controls may be displayed as a bank of controls.The controls can include buttons, pull-down menu controls, and otheruser interface controls. The user interface controls can be provided bychanging an existing collection of user interface controls (e.g., addingor removing user interface controls in a default set of controls).

The groupings may be based on user maturity. For example, differentgroupings may be for children and/or teenagers. The groupings may alsobe used to identify access levels to network service provider servicessuch as e-mail, chat rooms, and Internet browsing.

Identifying a grouping may include receiving user information anddetermining the grouping based on the received information. Such userinformation may be received through a network connection. Theinformation may include a user identifier. The user identifier may beassociated with a grouping by storing the associated grouping in adatabase. The grouping can be selected from a list or by identifyinguser characteristics such as a user's age.

In another general aspect, producing a toolbar having user interfacecontrols includes associating a grouping corresponding to a maturitylevel with a user identifier by receiving multiple groupings, receivinga user identifier over a network connection, determining the groupingassociated with the user identifier, and using the determined groupingto produce a toolbar having user interface controls. The user interfacecontrols included in the toolbar are determined based on the groupingassociated with the user identifier.

In yet another general aspect, a user interface is customized byaccessing user profile information for a user of a computer system,configuring a user interface control, including one or more referencesto content, based at least in part upon the user profile information,and regulating access to content based on the user profile information.Implementations may include one or more of the following features. Theuser profile information may include age, or a level of maturity. Theuser interface control may be configured automatically or in response toa user. Access to content may be enabled by blocking access toinformation other than the pre-designated references. The user interfacecontrol may be populated with pre-designated references to content basedupon the user profile information. User profile information may besupplied, for example, by a master user. The user profile informationmay be stored and/or updated. Also, the user interface control may beupdated, for example, when the user profile information is updated.

Advantages may include one or more of the following. For example, bycustomizing the controls made available by a toolbar based on a user'sgroup, different users can enjoy the benefits of a toolbar without theclutter of permanently disabled controls or controls not frequentlyaccessed. When the groups correspond to different levels of maturity, anapplication can provide youngsters with a toolbar that limits access tocertain functions, for example, by omitting buttons relating toforbidden functions, without calling these limitations to a child'sattention. Additionally, a simplified toolbar—for example, a toolbarthat includes buttons different than those available on a full-accesstoolbar—can direct a child's attention to age-appropriate features thata child is likely to enjoy.

When a network service provider furnishes group specific toolbars,adults can place a child in front of a networked computer withoutworrying that the child will stumble onto material intended for matureaudiences. At the same time, the child is not frustrated or confused byinteracting with a toolbar featuring a number of disabled controls.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

FIGS. 1 and 2 are screenshots of a graphical user interface (GUI).

FIG. 3 is a flow chart of a procedure for producing a bank of controlsbased on an identified access level.

FIGS. 4A and 4B are screenshots of a GUI that can define an access levelfor a user.

FIGS. 5A and 5B are screenshots of toolbars that have different controlsbased on the different access-levels of different users.

FIG. 6 is a diagram of a system for producing a bank of controls basedon an identified access level.

FIG. 7 is a diagram of a computer platform.

FIG. 8 is a flow chart of a procedure for customizing a user interface.

FIGS. 9A, 9B, 10A, 10B, and 11-12 are screenshots of UIs that may beused in the procedure of FIG. 8.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

Referring to FIG. 3, producing a bank of user interface controls for agraphical user interface (GUI) includes identifying a user's grouping(110) from a set of different groupings and including controls in thebank of controls (112) based on the identified grouping. Identifying agrouping (110) can be achieved based on any combination of a number offactors. For example, a grouping can be determined based on informationdescribing user characteristics (e.g., age) or by using environmentalinformation (e.g., when an application is launched). The grouping, oruser profile information, may include a user-defined grouping or apre-defined grouping which the user may opt to join or to which the usermay be associated without input from the user. In one implementation,the user may be associated with more than one grouping.

This technique of producing a bank of user interface controls provides auser with a concentrated collection of controls tailored to a user'sgrouping. Thus, users belonging to a group having restricted-access donot experience the problem of toolbar clutter that results frompermanently disabled controls reserved for more privileged users.Additionally, functions that a certain class of user (e.g., child,elderly, mentally challenged) are likely to use more frequently can bepresented more conspicuously (e.g., as a toolbar button instead of as amenu choice). In one implementation, the user is assigned to a class by,for example, a master user. In another implementation, the userself-selects a class from among several available classes. For instance,the user may choose to belong to a “teen” class of user rather than a“child” or “adult” class of user. In yet another implementation, theuser may be assigned to or may choose to belong to more than one class.For example, the user may choose to be assigned to a “teen” class and a“sports fan” class, and a user interface would then be configured asappropriate to a teen sports fan user.

The technique described above has a wide variety of potentialapplications. For example, network services such as e-mail and Internetaccess offer adults a wealth of information and communication options.These services, however, can expose teenagers and children to subjectmatter aimed at more mature audiences. Some inappropriate material isactively sought by young users (e.g., via the Internet) while othermaterial is inappropriately sent to young users (e.g., in chat rooms).Accordingly, one implementation employs maturity-based groupings tocustomize different toolbars for network service users of differentages.

Referring to FIG. 4A, a network service provider GUI 114 can include oneor more toolbars 118. Tailoring a toolbar 118 to include a specific setof controls for users of different ages can help protect teenagers andyounger children from inappropriate material and simplify use byeliminating otherwise disabled functions from representation on a GUIscreen 114. This tailoring also can steer younger users toward areas ofpotential interest.

In one implementation, a user's grouping is defined by a “master” usersuch as an adult having an account with a network service provider, or asystem administrator of the network service provider. The master usermay select the user's grouping from among a set of available groupings,the master user may modify or otherwise customize an available grouping,or the master user may create a new grouping to associate with the user.As shown, an adult can create an account for a child by selecting ascreen name (i.e., a user identifier) 116. Referring to FIG. 4B, theadult then can select a grouping (e.g., 18+120 a, mature teen 120 b,young teen 120 c, or kids 120 d) from a list of available groupings toassociate the selected grouping with the user identifier. Differentgroupings also grant different levels of access to the Internet (e.g.,browsing, newsgroups, FTP (file transfer protocol) downloads), e-mail,chat sessions, and other network services (e.g., account management).Network service software on a client or a host can use a selectedgrouping (e.g., as defined by a master user) to provide a toolbartailored to services available to the users of the selected grouping.Selecting a grouping from a list of available groupings enables an adultto quickly set up accounts for different youngsters that both provideappropriate limitations on access and provide a customized userinterface. The groupings shown are merely illustrative. For example, inanother implementation, the network service software includes only twogroupings: “Internet access” and “no Internet access.” In anotherimplementation, the user may self-select from the list of availablegroupings, modify an existing grouping, or may create a new grouping.

Referring to FIGS. 5A-5D, a toolbar 118 produced for a user identifiedas having an “18+” grouping (i.e., an adult or general access user)includes controls different from a toolbar 124 produced for a useridentified as belonging to a “kids” group. As shown, both toolbars 118,124 share a number of common controls such as controls for handlinge-mail 118 a-118 c, 124 a-124 c. Additionally, both toolbars 118, 124share general characteristics. For example, buttons 118 a, 118 b, 118k-118 m and pull-down menus 118 c, 118 e-118 j both include pictures(e.g., a printer) and text (e.g., “Print”) describing the function(s)accessible with a control. A user can reduce the amount of screen spacethat a toolbar 118, 124 occupies by configuring the toolbar 118, 124 toonly display the text description (not shown).

As shown in FIG. 5A, adult toolbar 118 includes a pull-down menu control118 i labeled “Channels” that lists menu choices 122 corresponding todifferent categories of information that a user can access. Some of theinformation included in these categories may be inappropriate for youngchildren (e.g., magazine subscriptions that can be ordered using a “billme later” option). As shown, the “Channels” pull-down menu 122 featuresa “Kids Only” menu choice 123 near the end of the listed choices 122.

The kids toolbar 124 does not include a number of controls 118 j-118 mincluded in the adult toolbar 118 (e.g., controls for accessing stockquote information and for making purchases). Additionally, the kidstoolbar 124 does not include the “Channels” menu control 118 i includedin the adult toolbar 118. The kids toolbar 124 instead includes a “KidsOnly” button 124 i that presents a “Kids Only” window 126 whenactivated. Providing access to the “Kids Only” window 126 as a prominentbutton 124 i in the kids toolbar 124, instead of being buried in a listof choices provided by a pull-down menu control 118 i, increases thelikelihood a young child will navigate to the window 126. Thus, a menuchoice available to an adult may be converted into a control button fora child's easy access.

Referring to FIG. 5B, the adult toolbar 118 also includes a “Favorites”pull-down menu control 118 g that contains references to contentfrequently accessed by an adult. Many of the listed entries, forexample, merchandise available for purchase on-line or bookmarkedInternet sites, may be inappropriate for children. The kid's toolbar 124does not include the “Favorites” pull-down menu control 118 g, butinstead offers a “Shortcuts” pull-down menu control 124 g that listschoices that direct a child to areas of special interest to kids (e.g.,school project ideas).

Referring to FIG. 6, in one implementation, a host 144 uses a table 154to store the grouping assigned to a user identifier (ID). It should beunderstood that the host 144 may not be a single computer, but acollection of networked computers. A client, such as client 140 a,executing client software 141 (e.g., America Online client software)initializes a network session by sending a message including a useridentifier 142 to the host 144. The message may also include otherinformation such as the client 140 a platform (e.g., a PC or Macintoshcomputer). Software instructions 146 executing on the host 144 use thetable 154 to determine the grouping corresponding to the received userID 142 (150) and identify an associated set of toolbar controls based onthe determined access level (152). The host 144 can transmit the toolbarinformation to the client 140 a, which will use the information todisplay a toolbar having the designated set of toolbar controls.

The host software 146 can prepare toolbar information in a number ofways. For example, the software 146 may begin with a default set ofcontrols (e.g., the controls included in the adult toolbar) and modifythe controls included in the toolbar transmitted to the client 140 a byeliminating and/or adding controls to the default set. The default setof controls can reside on either the client 140 a or the host 144. Thecontrols may be prepared at any time, including preparing the controlsin anticipation of user navigation to the user interface or in responseto user navigation to the user interface.

The software 146 can also modify a control in the default set ofcontrols to produce a different control. For example, the software 146can produce a different pull-down menu control by removing or addingmenu choices from an existing pull-down menu control. Additionally, anew button can be produced by modifying an existing button to have adifferent picture, descriptive text, and/or preprogrammed function. Inanother implementation, controls may be modified without modification ofthe user interface. For example, a pointer or a link associated with acontrol may be modified without modification of the appearance of thecontrol itself. As a further example, a control that contains a pointeror a link to content suitable for an adult may be changed to a pointeror a link to content suitable for a child, without affecting theappearance of the control. Thus, a child user will be able to navigateto age appropriate content even though the user interface appears thesame as a user interface configured for an adult user.

The system shown in FIG. 6 is merely illustrative. A wide number ofdifferent systems can also produce a toolbar customized for differentgroupings. For example, user information (e.g., user ID and grouping)can be stored on the client 140 a instead of the host 144. Thisconfiguration, while potentially faster than the system shown in FIG. 6,may run a risk that a clever youngster may figure out how to alter userinformation stored at the client and thereby obtain access to networkservices that may be inappropriate. In contrast, storing toolbarcustomization information at the host helps prevent against theunauthorized viewing of or access to the customization information.Other implementations distribute system functions between the host 144and clients 140 a-140 n differently. Further, in some implementations,the entire system resides on a single computer instead of a host 144 andclient 140 a.

Referring to FIG. 7, a computer platform 160 suitable for executinginstructions for producing a bank of controls based on an identifiedaccess level 176 includes a display 162, a keyboard 164, a pointingdevice 166 such as a mouse, and a digital computer 168. The digitalcomputer 168 includes memory 172, a processor 174, a mass storage device170 a, and other customary components such as a memory bus andperipheral bus (not shown). The platform 160 may further include anetwork connection 180.

Mass storage device 170 a can store the instructions 176 for producing abank of controls and instructions for an operating system 178 (e.g.,Microsoft Windows 98™). The instructions 176 may be transferred tomemory 172 and processor 174 in the course of operation. Theinstructions cause the display 162 to display images of a graphical userinterface. The instructions 176 can be stored on a variety of massstorage devices such as a floppy disk 170 b, CD-ROM 170 c, or PROM (notshown).

In one implementation, a “Favorite Places” menu control may be modifiedbased on user profile information to contain links to contentappropriate or interesting to the user. The modification may be made atany time, including during installation of client software, beforeexecution of client software, during execution of client software, orafter execution of client software. The modification may be madeautomatically, or in response to an action by a master user or by theuser. For example, the modification may be made in anticipation of usernavigation to the user interface, or in response to user navigation tothe user interface. Also, the modification may include populating the“Favorite Places” menu control with pre-determined links based upon theuser profile information.

The user profile information may include information that is useful inconfiguring a user interface for the user, and may include informationsuch as the age or maturity level of the user. The user profileinformation may be input or modified by a master user, and may be, forexample, supplied during account setup for the user. In anotherimplementation, the user provides or modifies the user profileinformation. In yet another implementation, a set of pre-defined userprofiles may be made available, and one or more profile may beassociated with the user. For example, a master user may select aprofile from among the available profiles to associate with the user, orthe user may self-select a profile.

For example, in one implementation, a parent or other adult may act as amaster user to set up an account for a child user. During the accountsetup, the master user may supply user profile information for the childuser that indicates that the child user is a child of a certain age orage group. For example, the master user may supply user profileinformation indicating that the child user is a child of age 12 andunder. A “Favorite Places” menu control may be prepared based upon theuser profile information indicating that the user is a child. Forinstance, when the user profile information indicates that the user is achild, a “Favorite Places” menu control may be prepared usingpre-designated, age appropriate, links to populate the menu control. Inanother implementation, the user self-selects user profile informationindicating, for example, that the user is a child of age 12 and under.The menu control may be populated at any time, including in anticipationof user navigation to the menu control or in response to user navigationto the menu control. A parental controls feature may be used to limitthe default “Favorite Places” links to content used to populate the menucontrol. Also, in one implementation, the child user may be blocked fromadding links other than those on the pre-designated list. The “FavoritePlaces” menu control may be updated periodically by, for example,updating the links on the pre-designated list. The menu control may beupdated at any time, including in anticipation of user navigation to themenu control or in response to user navigation to the menu control.

Referring to FIG. 8, a user 802 a, a master user 802 b, and a host 804interact according to a procedure 800 to customize a user interface. Theprocedure 800 may be implemented by any type of hardware, software,device, computer, computer system, equipment, component, program,application, code, storage medium, or propagated signal. In oneimplementation, the master user 802 b is separate from the user 802 a.In another implementation, the master user 802 b is also the user 802 a.

Examples of elements shown in FIG. 8 (e.g., user 802 a, master user 802b, and host 804) are broadly described above with respect to FIGS. 6 and7. In particular, the user 802 a and the master user 802 b typicallyhave attributes comparable to those described with respect to clientdevices 140 a, 140 b, and 140 n and/or computer platform 160. The host804 typically has attributes comparable to those described above withrespect to host device 144. Furthermore, although not shown in FIG. 8,the user 802 a, the master user 802 b, and/or the host 804 may bedirectly or indirectly interconnected through known or describeddelivery networks, examples of which are described with respect tonetwork connection 180.

The procedure 800 generally involves customizing a user interface basedupon user profile information. Examples of user profile informationinclude the age or maturity level of the user. In one implementation, aset of pre-defined user profiles is made available, and one or moreprofiles is associated with the user. In another implementation, a userprofile is modified or created to be associated with the user. The userprofile information may be unique to the user, or may be common toseveral users of the computer system. The user interface customizedaccording to the user profile information may contain one or morereferences to content, such as, for example, a collection of favoritelinks to frequently accessed content.

By regulating the references to content based on user profileinformation, age-appropriate control is maintained over the contentviewed by the user. Generally, control is maintained through a masteruser, such as a parent or other adult, who is able to supply userprofile information for the user in order to appropriately tailor thelinks to content offered to the user in a “Favorite Places” menucontrol. The master user may select from among one or more pre-defineduser profiles to associate with the user, or may modify or create aprofile to associate with the user. Thus, flexibility is maintained byage-appropriate tailoring of links to content that may appear in the“Favorite Places” menu control.

In procedure 800, the master user 802 b and the host 804 are physicallyand/or logically connected. For instance, master user 802 b may connectto the host 804 across a network (e.g., network connection 180) bysupplying a user identification and password to a server of the host144. In general, the master user 802 b is a customer serviced by thehost 804 and typically is a parent or other adult.

The master user 802 b may send a request to the host 804 to establish ormodify an account for a user 802 a (step 805). The host 804 responds tothe request from the master user 802 b by requesting user profileinformation from the master user 802 b (step 810). User profileinformation may include, for example, information relating to the ageand maturity level of the user, such as an age in years or an agecategory (e.g., child of age 12 and under (“Kids Only”), young teenbetween 13-15, mature teen between 16-17, and adult of 18 years andolder). The user profile information may correspond to information usedin a parental controls feature to regulate the ability of a user 802 ato access content. User profile information also may include otherattributes assigned to the user, such as, for example, personalinformation such as hobbies, interests, name and/or address.

Requesting user profile information may include presenting a userinterface (“UI”) to the master user 802 b. The UI may be presented as aWeb page having text, images, audio, video, and/or any other type ofcontent. In one implementation, shown in FIG. 4B, a UI 114 includes userprofile information about the user 802 a, one example of which is theuser's age group 120 a, 120 b, 120 c, 120 d. As shown in FIG. 4A, a UI114 may include a screen name 116 provided by a master user 802 b duringthe process of setting up an account for a user 802 a.

The master user 802 b supplies user profile information to the host 804(step 815). Supplying user profile information may include having aclient system 140 a connect across a network 180 and supply user profileinformation to a host system 144.

The host 804 stores the user profile information for the user (step820). The host 804 may store the user profile information in, forexample, a database 154 on the host, a memory 172 or mass storage device170 a on the client 160, 140 a, or on another suitable storage mediumand/or location.

At some later time, the user 802 a connects to the host 804 (step 825).For instance, the user 802 a may connect to the host 804 across anetwork (e.g., network connection 180) by supplying a useridentification and password to a server of the host 144. In general, theuser 802 a is a customer serviced by the host 804 and typically is achild or otherwise under the supervision of the master user 802 b.

The host 804 determines the user profile information of the user 802 a(step 830). Determining the user profile information may includeretrieving the user profile information of the user 802 a from a storagelocation on the host 144 or on the client 140 a. For example, the userprofile information may be retrieved from a database 154 on the host, amemory 172 or mass storage device 170 a on the client 160, 140 a, oranother suitable storage medium and/or location. Alternatively,determining the user profile may include extrapolating information fromuser activities. For example, user profile information may beextrapolated based upon content or services frequently accessed orrequested by the user. In one instance, a user profile may be modifiedto note an interest in sports based upon frequent user viewing of sportsrelated content. The profile may be further customized based upon, forexample, the user's viewing of baseball related content compared to theless frequent viewing of hockey related content.

The host 704 prepares a customized user interface control based on theuser profile information (step 835). For example, the customized userinterface includes a “Favorite Places” menu control that contains one ormore links to content customized based on the user profile information.In this example, the customized user interface may be prepared bypopulating a “Favorite Places” menu control with pre-selected links tocontent that the user would be interested in viewing e.g., those whichare age-appropriate for the user 802 a based upon the given user profileinformation. For example, if the user 802 a is an adult, the “FavoritePlaces” menu control may be populated with one or more links to contentthat would be of interest to and appropriate for an adult. Further, theuser may be permitted to further customize the links to content byadding or deleting one or more links. FIGS. 9A, 10A, and 11 show animplementation of a user interface customized for an adult. If, on theother hand, the user 802 a is a child of age 12 or under, or has beensomehow identified or designated as a child of age 12 or under, or hasbeen associated with an age 12 or under account, the “Favorite Places”menu control may be populated with one or more pre-designated links tocontent that would be of interest to and appropriate for a child of thatage group. FIGS. 9B and 10B show an implementation of a user interfacecustomized for a child of age 12 or under, and are analogous to FIGS. 9Aand 10A.

In one implementation, shown in FIG. 9A, a UI 900A for an adult userincludes a menu control dropdown button 905 labeled “Favorites” that,when selected, renders a dropdown menu 910 that includes a menu itemlabeled “Favorite Places” 910 a. To display the “Favorite Places” menucontrol, the user 802 a clicks on the menu item 910 a or simultaneouslypresses the ALT key and the underlined letter in the icon. Also, a menubutton 915 labeled “My Favorites” is available as a shortcut to the menuitem 910 a. When the adult user selects menu item 910 a or selects menubutton 915, a UI 1000A may be prepared and rendered.

As shown in FIG. 10A, a customized UI 1000A for an adult user may beprepared by populating a designated area 1020 of the UI 1000A with alisting of links to content that are chosen automatically based upon theuser profile information associated with the user. For example, links toa user's “Favorite Places” 1025 may be prepared. One or more of thelinks to content may be shown as, for example, a link to a folder (forexample, folders 1025 a, 1025 b, 1025 c, 1025 d), where the foldercontains links to content. Also, one or more of the links to content1120 may also be shown as a direct link to the content (for example, seelink 1120 shown in FIG. 12). The adult user may be given an option to godirectly to the linked content using a button 1030, to create a new linkto content 1035, to edit a link to content 1040, to delete a link tocontent 1045; and/or save/replace a link to content 1050.

The user may open a folder, for example folder 1025 a, by clicking onthe folder to display the list of links to content contained in thefolder. As shown in FIG. 11, a user may open folder 1025 a “About AOL”to reveal a list of links to content 1120 a-1120 d, including a link to“Member Services: General Help” 1120 b. Generic entries may be providedas default links to content, and the entries may be varied from user touser.

As shown in FIG. 12, a UI 1200 may display further information 1230about a link to content 1220, such as, for example, the description 1230a and Internet address 1230 b of the link. As also shown in FIG. 12, auser may add or modify a link to content 1220 by providing newinformation 1230.

In comparison to FIG. 9A, FIG. 9B shows an implementation of a UI 900Bfor a child user of age 12 or under. The UI 900B includes a menu controldropdown button 905 labeled “Favorites” that, when selected, renders adropdown menu 920 that includes a menu item labeled “Kids Only Main” 920a. The dropdown menu 920 includes links to age appropriate content. Todisplay the “Favorite Places” menu control, the user 802 a clicks on themenu item 920 a or simultaneously presses the ALT key and the underlinedletter in the icon. Also, a menu button 925 labeled “KO Fun Spots”(shown in FIG. 10B) is available as a shortcut to the menu item 920 a.When the child user selects menu item 920 a or selects menu button 925,a UI 1000B may be prepared and rendered.

As shown in FIG. 10B, a customized UI 1000B for a child user may beprepared by populating a designated area 1060 of the UI 1000B with alisting of links to content that are chosen based upon the user profileinformation associated with the user. For example, links to a childuser's Kids Only Favorites 1065 may be prepared and, for children of age12 or under, or users designated as a child of age 12 or under, may befurther chosen from a pre-approved list of links to content. One or moreof the links to content may be shown as a direct link to the content(for example, links 1065 a through 1065 j). The child user may beprevented from modifying the links to content (for example, see the lackof buttons in FIG. 10B corresponding to buttons 1030-1050 in FIG. 10A).

The user 802 a requests access to content listed in the “FavoritePlaces” 1020, 1060 by, for example, clicking on the link (for example,1120 b or 1065 a) in the “Favorite Places” graphical user interface1020, 1060 or by clicking on the “Go” button 1030 in the “FavoritePlaces” graphical user interface 1020 (step 840).

The host 804 responds by providing access to the desired contentappearing in the “Favorite Places” control based upon the user profileinformation (step 845). For example, the host may permit the user 802 ato have access to content listed in the “Favorite Places” graphical userinterface rather than blocking access to that content. Because the linksappearing in the “Favorite Places” graphical user interface were placedthere based on the user profile information, these links are presumed tobe authorized, appropriate, and/or desirable for the user 802 a to view.

The user 802 a may provide updated “Favorite Places” information to thehost 804 (step 850). For example, the user 802 a may seek to add,modify, or delete a link to content in the “Favorite Places” control.For example, the user may seek to add a new link to content by clickingon the “New” button 1035 in the “Favorite Places” graphical userinterface 1020. A parental controls feature may be employed to screenthe requested addition based on the user's user profile information andonly add the new link if it is permitted based on the user profileinformation. For example, if the user 802 a is designated a child of age12 years old or under, or has somehow been designated as a child of age12 or under, the user may be forbidden to add new links altogether orspecifically identified in a block list, or new links may be restrictedto add only links included or identifiable from a pre-approved list oflinks. The user 802 a may seek to modify a link by, for example,clicking on the “Edit” button 1040 in the “Favorite Places” graphicaluser interface 1020. Again, a parental controls feature may be employedto screen the requested modification based on the user's user profileinformation and only add the new link if it is permitted based on theuser profile information. The user 802 a may seek to delete a link by,for example, clicking on the “Delete” button 1045 in the “FavoritePlaces” graphical user interface 1020. Also, the user 802 a may seek tosave or replace the link by, for example, clicking of the “Save/Replace”button 1050 in the “Favorite Places” graphical user interface 1020.

The host 804 stores the updated favorite places information for the user802 a (step 855). The host 804 may store the updated favorite placesinformation in, for example, a database 154 on the host, a memory 172 ormass storage device 170 a on the client 160, 140 a, or another suitablestorage medium and/or location.

The user 802 a requests access to the updated content listed in the“Favorite Places” 1020, 1060 by, for example, clicking on the link inthe “Favorite Places” graphical user interface 1020, 1060 or by clickingon the “Go” button 1030 in the “Favorite Places” graphical userinterface 1020 (step 860). The host 704 responds by providing access tothe desired updated content appearing in the “Favorite Places” controlbased upon the user profile information (step 865). For example, thehost may permit the user 802 a to have access to updated content listedin the “Favorite Places” graphical user interface rather than blockingaccess to that content.

The techniques, methods and systems described here may findapplicability in any computing, processing or network environment inwhich a user interface provides users with access to content orfunctionality. Various implementations of these systems and techniquesmay be realized in digital electronic circuitry, or in computerhardware, firmware, software, or in combinations thereof.

A system or other apparatus that uses one or more of the techniques andmethods described here may be implemented as a computer-readable storagemedium, configured with a computer program, where the storage medium soconfigured causes a computer system to operate on input and/or generateoutput in a specific and predefined manner. Such a computer system mayinclude one or more programmable processors that receive data andinstructions from, and transmit data and instructions to, a data storagesystem, and suitable input and output devices.

Each computer program may be implemented in a high-level procedural orobject-oriented programming language, or in assembly or machine languageif desired; and in any case, the language may be a compiled orinterpreted language. Suitable processors include, by way of example,both general and special purpose microprocessors. Generally, a processorwill receive instructions and data from a read-only memory and/or arandom access memory.

Storage devices suitable for tangibly embodying computer programinstructions and data include all forms of non-volatile memory,including semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM disks.

Any of the foregoing may be supplemented by, or implemented in,specially-designed ASICs (application-specific integrated circuits).

Furthermore, although a number of implementations have been described,it will be understood that various modifications may be made. Forexample, a user interface may include dropdown menus (see, for example,FIG. 9A) or separate windows (see, for example, FIG. 10A). Moreover, thedistinction made between an adult and a child in some of the describedimplementations is merely for the purpose of demonstrating the abilityto vary the degree of access to content or authorization to modifyaccess to content based on an attribute of classification of users. Forexample, other groupings such as student, teacher, administrator, orstaff and management may be used in place of age or maturity.Accordingly, other implementations are within the scope of the followingclaims.

1. (canceled)
 2. (canceled)
 3. A method comprising: identifying, usingat least one processor, one or more interests of a user based on one ormore activities of the user; identifying content related to the one ormore interests; and customizing, using the at least one processor, auser interface to include one or more links to the identified content.4. The method as recited in claim 3, wherein the one or more activitiescomprises viewing of one or more webpages.
 5. The method as recited inclaim 3, wherein the one or more activities comprises accessing one ormore services.
 6. The method as recited in claim 5, wherein the one ormore services comprises one or more of website browsing, email, chatsessions, and file downloading.
 7. The method as recited in claim 3,further comprising maintaining a user profile for the user thatindicates the one or more interests of the user.
 8. The method asrecited in claim 7, further comprising updating the user profile upondetecting additional activities by the user.
 9. The method as recited inclaim 7, further comprising accessing the user profile upon login of theuser to identify the one or more interests.
 10. The method as recited inclaim 3, wherein the identified content comprises one or more websites.11. The method as recited in claim 3, wherein the one or more linkscomprises one or more toolbar controls.
 12. The method as recited inclaim 11, wherein the one or more toolbar controls comprise a controlfor accessing one or more websites.
 13. The method as recited in claim11, wherein the one or more toolbar controls comprise a button.
 14. Themethod as recited in claim 11, wherein the one or more toolbar controlscomprises a pull down menu.
 15. A non-transitory computer-readablestorage medium including a set of instructions that, when executed,cause at least one processor to perform steps comprising: identifyingone or more interests of a user based on one or more activities of theuser; identifying content related to the one or more interests; andcustomizing a user interface to include one or more links to theidentified content.
 16. The computer-readable storage medium as recitedin claim 15, further comprising instructions that, when executed, causethe at least one processor to maintain a user profile for the user thatindicates the one or more interests of the user.
 17. Thecomputer-readable storage medium as recited in claim 16, furthercomprising instructions that, when executed, cause the at least oneprocessor to update the user profile upon detecting additionalactivities by the user.
 18. The computer-readable storage medium asrecited in claim 17, further comprising instructions that, whenexecuted, cause the at least one processor to access the user profileupon login of the user to identify the one or more interests.
 19. Thecomputer-readable storage medium as recited in claim 18, wherein the oneor more activities comprises viewing of one or more webpages.
 20. Thecomputer-readable storage medium as recited in claim 19, wherein theidentified content comprises one or more websites.
 21. Thecomputer-readable storage medium as recited in claim 18, wherein the oneor more activities comprises accessing one or more services.
 22. Thecomputer-readable storage medium as recited in claim 21, wherein the oneor more services comprises one or more of website browsing, email, chatsessions, and file downloading.
 23. A method comprising: identifying,using at least one processor, content requested by a user; identifyingadditional content related to the identified content; customizing, usingthe at least one processor, a user interface to include one or morelinks to the additional content; and presenting the customized userinterface for display to the user on a display.
 24. The method asrecited in claim 23, further comprising maintaining a user profile forthe user that notes content requested by the user.
 25. The method asrecited in claim 24, further comprising extrapolating the identifiedcontent to identify the additional content.
 26. The method as recited inclaim 23, wherein the content requested by the user comprises one ormore webpages.
 27. The method as recited in claim 23, wherein thecontent requested by the user comprises one or more services.
 28. Themethod as recited in claim 27, wherein the one or more servicescomprises one or more of website browsing, email, chat sessions, andfile downloading.
 29. The method as recited in claim 23, furthercomprising positioning the one or more links to the additional contentin a toolbar of the user interface.
 30. The method as recited in claim29, further comprising positioning the one or more links to theadditional content in a pull down menu.
 31. The method as recited inclaim 29, further comprising positioning the one or more links to theadditional content in a favorites menu.
 32. The method as recited inclaim 23, further comprising identifying one or more interests of theuser based upon one or more attributes of the user.
 33. The method asrecited in claim 32, further comprising customizing the user interfaceto include one or more additional links to content related to the one ormore interests.
 34. A non-transitory computer-readable storage mediumincluding a set of instructions that, when executed, cause at least oneprocessor to perform steps comprising: identifying, using at least oneprocessor, content requested by a user; identifying additional contentrelated to the identified content; customizing, using the at least oneprocessor, a user interface to include one or more links to theadditional content; and presenting the customized user interface fordisplay to the user on a display.
 35. The computer-readable storagemedium as recited in claim 34, further comprising instructions that,when executed, cause the at least one processor to maintain a userprofile for the user that notes content requested by the user.
 36. Thecomputer-readable storage medium as recited in claim 35, furthercomprising instructions that, when executed, cause the at least oneprocessor to extrapolate the identified content to identify theadditional content.
 37. The computer-readable storage medium as recitedin claim 36, wherein the content requested by the user comprises one ormore webpages.
 38. The computer-readable storage medium as recited inclaim 36, wherein the content requested by the user comprises one ormore services.
 39. The computer-readable storage medium as recited inclaim 38, wherein the one or more services comprises one or more ofwebsite browsing, email, chat sessions, and file downloading.
 40. Thecomputer-readable storage medium as recited in claim 36, furthercomprising instructions that, when executed, cause the at least oneprocessor to position the one or more links to the additional content ina toolbar of the user interface.
 41. The computer-readable storagemedium as recited in claim 40, further comprising instructions that,when executed, cause the at least one processor to position the one ormore links to the additional content in a pull down menu.
 42. Thecomputer-readable storage medium as recited in claim 41, furthercomprising instructions that, when executed, cause the at least oneprocessor to position the one or more links to the additional content ina favorites menu.
 43. The computer-readable storage medium as recited inclaim 36, further comprising instructions that, when executed, cause theat least one processor to identify one or more interests of the userbased upon one or more attributes of the user.
 44. The computer-readablestorage medium as recited in claim 43, further comprising instructionsthat, when executed, cause the at least one processor to customize theuser interface to include one or more additional links to contentrelated to the one or more interests.